package com.wangshili.sys.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.wangshili.common.bo.PageObject;
import com.wangshili.pojo.common.vo.JsonResult;
import com.wangshili.pojo.sys.entity.SysRole;
import com.wangshili.sys.service.SysRoleService;

/**
 * 角色管理控制层，返回json数据
 * @author wangshili
 *
 */
@RestController
@RequestMapping("/role/")
public class SysRoleController {
	
	@Autowired
	SysRoleService sysRoleService;
	
	/**
	 * 查找角色数据
	 * @param name 名字，可以为空
	 * @param pageCurrent 当前页码
	 * @return
	 */
	@RequestMapping("doFindPageObjects")
	public JsonResult doFindPageObjects(String name,Integer pageCurrent) {
		PageObject<SysRole> listRoleObjects = 
				sysRoleService.listRoleObjects(name, pageCurrent);
		return new JsonResult(listRoleObjects);
	}
	
	/**
	 * 删除一行角色表数据
	 * @param id 指定id
	 * @return
	 */
	@RequestMapping("doDeleteObject")
	public JsonResult doDeleteObject(Integer id) {
		sysRoleService.deleteRoleObjectById(id);
		return new JsonResult("删除成功");
	}
	
	/**
	 * 保存一行数据，也会保存角色与菜单的关系表
	 * @param id
	 * @return
	 */
	@RequestMapping("doSaveObject")
	public JsonResult doSaveObject(SysRole entity,Integer... menuIds) {
		sysRoleService.insertRoleMenuObject(entity, menuIds);
		return new JsonResult("添加成功");
	}
	
	/**
	 * 根据id获取角色信息，这里涉及到查询角色表和角色菜单关系表，需要用一个类来封装信息
	 * @param id
	 * @return
	 */
	@RequestMapping("doFindObjectById")
	public JsonResult doFindObjectById(Integer id) {
		return new JsonResult(sysRoleService.findObjectById(id));
	}
	
	/**
	 * 更新角色信息
	 * @param entity 角色对象
	 * @return
	 */
	@RequestMapping("doUpdateObject")
	public JsonResult doUpdateObject(SysRole entity) {
		sysRoleService.updateRoleObject(entity);
		return new JsonResult("更新成功");
	}
	
	/**
	 * 查询所有的角色信息，只返回id和name并用CheckBox封装
	 * @return
	 */
	@RequestMapping("doFindRoles")
    public JsonResult doFindRoles() {
            return new JsonResult(sysRoleService.findCheckBoxObjects());
    }
}
